package com.smartStatus.admin.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.smartStatus.api.entity.SysMenu;
import com.smartStatus.api.entity.SysMenuDetails;
import com.smartStatus.api.vo.SysMenuVo;
import com.smartStatus.core.util.R;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

/**
 * @ClassName : SysMenuService
 * @Author : lby
 * @Date: 2020/12/8 11:03
 * @Description :
 */
public interface SysMenuService extends IService<SysMenu> {
    /**
     * 全部菜单展示
     *
     * @return
     */

    /**
     * 子集菜单展示
     */
    public List<SysMenuVo> childrenList(SysMenu sysMenu);

    /**
     * 分页数据
     */

    IPage<SysMenu> pageList(Page<SysMenu> page, QueryWrapper<SysMenu> queryWrapper, @Param("sysMenu") SysMenu sysMenu);

    /**
     * 菜单添加
     */
    Boolean saveMenus(SysMenu sysMenu);

    /**
     * 菜单修改
     */
    Boolean editMenu(SysMenu sysMenu);

    /**
     * 菜单删除
     */
    Boolean menuDel(SysMenu sysMenu);

    /**
     * 查询本菜单下的子菜单
     */
    List<SysMenuDetails> getSubMenus(SysMenuVo sysMenuVo);

    /**
     * 获取当前节点的父节点
     */
    Integer getParentId(Integer subId);


    /**
     * 获取路由菜单树
     * @return
     */
     R getMenuTree(Boolean flag);


    /**
     * 删除缓存中的菜单
     * @return
     */
    R deleteMenuTree(Integer userId);



    /**
     * 新增菜单
     * @param sysMenuVo
     * @return
     */
    R saveMenuList(SysMenuVo sysMenuVo);



}
